package java_thinking.unit_20._20_1;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Desc:   20.1.1 定义注解
 *      1.@Target 用来定义你的注解将应用于什么地方，比如是一个方法或者一个域,如果想要将注解应用于所有的ElementType，则省去@Target注解
 *      2.@Retention 用来定义该注解在哪一个级别的可用，在源代码(source)、类文件(class)、或者运行时(runtime)
 *      3.没有元素的注解成为标记注解，例如@Test
 * @author: cww
 * @DateTime: 2019-05-26 17:39
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Test {
}


class Testable {
    public void execute() {
        System.out.println("execute");
    }
    @Test void testExecute() {
        execute();
    }
}